package com.telit.android.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.telit.android.entity.AppTaskFeedback;
import com.telit.common.entity.CommEventTaskTrack;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;


/**
 * @Auther amy
 * @Describe 巡航巡护统一扩展类
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "AppTrackDTO", description = "AppTrackDTO")
public class AppTrackDTO extends CommEventTaskTrack implements Serializable {

    @ApiModelProperty(value = "时长")
    private String duration;

    @ApiModelProperty(value = "距离")
    private String distance;

    @ApiModelProperty(value = "任务标题")
    private String title;

    @ApiModelProperty(value = "无人机编号")
    private String uavCode;

    @ApiModelProperty(value = "无人机名称")
    private String uavName;

    @ApiModelProperty(value = "设备型号")
    private String equipmentModel;

    @ApiModelProperty(value = "反馈任务内容")
    private String feedbackContent;

    @ApiModelProperty(value = "反馈任务media")
    private String feedbackMedia;

    @ApiModelProperty(value = "人员任务开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date taskStartTime;

    @ApiModelProperty(value = "人员任务结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date taskEndTime;

    @ApiModelProperty(value = "人员任务完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date finishTime;

    @ApiModelProperty(value = "多媒体url")
    private String mediaUrl;

    @ApiModelProperty(value = "是否逾期 0未逾期 1已逾期")
    private Integer isDelay;

    @ApiModelProperty(value = "任务开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    @ApiModelProperty(value = "任务结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    @ApiModelProperty(value = "多媒体url集合")
    private List<String> mediaList;

    @ApiModelProperty(value = "总任务状态")
    private String totalStatus;

    @ApiModelProperty(value = "发起人id")
    private Long createPersonId;

    @ApiModelProperty(value = "发起人名称")
    private String createPersonName;

    @ApiModelProperty(value = "护林员用户名称")
    private String forestkeeper;

    @ApiModelProperty(value = "任务内容")
    private String content;

    @ApiModelProperty(value = "是否挂载设备,0否，1是")
    private Integer hasMount;

    @ApiModelProperty(value = "挂载设备名称")
    private String mountDeviceName;

    @ApiModelProperty(value = "挂载设备型号")
    private String mountDeviceType;

    @ApiModelProperty(value = "反馈列表集合")
    private List<AppTaskFeedback> taskFeedBackList;

    @ApiModelProperty(value = "轨迹")
    private String pointCollection;

    @ApiModelProperty(value = "任务类型")
    private String taskType;

    @ApiModelProperty(value = "行政编码名称")
    private String districtName;

    @ApiModelProperty(value = "停留时间")
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
//    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String waitTime;

    @ApiModelProperty(value = "热点任务时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date hotTime;

    @ApiModelProperty(value = "热点面积")
    private String hotArea;

    @ApiModelProperty(value = "反馈时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date feedbackTime;

    @ApiModelProperty(value = "详细地址")
    private String detailAddress;

    @ApiModelProperty(value = "停留时长")
    private String pauseDuration;

    @ApiModelProperty(value = "已完成任务个数")
    private int finishCount;

    @ApiModelProperty(value = "执行中任务个数")
    private int executeCount;

    @ApiModelProperty(value = "待执行任务个数")
    private int unExecuteCount;

    @ApiModelProperty(value = "逾期任务的个数")
    private int delayCount;

    @ApiModelProperty(value = "该热点任务总任务的个数")
    private int totalTaskCount;

    @ApiModelProperty(value = "任务经度")
    private String taskLongitude;

    @ApiModelProperty(value = "任务纬度")
    private String taskLatitude;

    @ApiModelProperty(value = "航线id")
    private String cruiseLineId;

    @ApiModelProperty(value = "火情类型 0虚假火情 1真实火情")
    private Integer fireType;

    @ApiModelProperty(value = "热点地址")
    private String hotAddress;


    private static final long serialVersionUID = 1L;
}
